#ifndef CONFIG_HPP_
#define CONFIG_HPP_

#include <string>
#include <sstream>


class Config{

private:

	static Config *configInstance;

	std::string inputFile;
	std::string outputFile;

	std::string address4;
	std::string address6;
	int port;

	std::string logFile;

	bool ipv6Flag;
	bool helpFlag;


	Config();
	Config(const Config&);

	void setDefault();


public:

	static Config *instance();

	void parseArguments(int argc, char **argv);

	std::string& getInputFile();
	std::string& getOutputFile();
	std::string& getAddress4();
	std::string& getAddress6();
	std::string& getAddress();
	int getPort();

	std::string &getLogFile();

	bool isHelpFlag();
	bool isIPv6Flag();

};


#endif /* CONFIG_HPP_ */
